NIST SP 800-232 ipd
制約付きデバイス向けAsconベース軽量暗号標準
認証付き暗号化、ハッシュ、拡張可能な出力ファンクション
初期公開ドラフト
この出版物は以下から無料で入手できます:
https://doi.org/10.6028/NIST.SP.800-232.ipd
NIST
2024年11月
翻訳版は非公式で無保証
不明点は原文を参照してください
本稿では、実験手順を適切に規定するために、市販または非市販の特定の機器、装置、ソフトウェア、または材料が特定されています。このような特定は、NISTによる製品またはサービスの推奨または支持を意味するものではなく、また、特定された材料または機器が必ずしも当該目的に最適なものであることを意味するものでもありません。
本出版物には、NISTが法定責任に基づき現在開発中の他の出版物への参照が含まれている場合があります。本出版物に含まれる情報(概念および方法論を含む)は、そのような関連出版物が完成する前であっても、連邦政府機関が使用することができます。したがって、各出版物が完成するまでは、既存の要件、ガイドライン、および手順(存在する場合)は引き続き有効です。計画および移行の目的で、連邦政府機関はNISTによるこれらの新しい出版物の開発を注意深く追跡することをお勧めします。
各組織は、パブリックコメント期間中にすべての草案出版物を確認し、NIS NISTにフィードバックを提供することをお勧めします。上記以外にも、多くのTサイバーセキュリティ関連の出版物が、https://csrc.nist.gov/publications で入手可能です。
権限
本出版物は、2014年連邦情報セキュリティ近代化法(FISMA)(44 U.S.C. § 3551 et seq.、公法(P.L.)113-283)に基づくNISTの法定責任に従って作成されました。NISTは、連邦情報システムの最低要件を含む情報セキュリティ標準およびガイドラインの策定に責任を負っていますが、これらの標準およびガイドラインは、当該システムに対する政策権限を行使する適切な連邦職員の明示的な承認がない限り、国家安全保障システムには適用されません。本ガイドラインは、米国行政管理予算局(OMB)通達A-130の要件に準拠しています。本出版物の内容は、商務長官が法定権限に基づき連邦機関に義務付け、拘束力のある標準およびガイドラインと矛盾するものと解釈されるべきではありません。また、本ガイドラインは、商務長官、ORCID長官、またはその他の連邦政府職員の既存の権限を変更または置き換えるものと解釈されるべきではありません。本出版物は、非政府組織が任意で使用することが可能であり、米国において著作権の対象ではありません。ただし、NISTでは出典を明記していただければ幸いです。
NISTテクニカルシリーズ ポリシー
著作権、使用、およびライセンスに関する声明
NISTテクニカルシリーズ 出版物識別子構文
出版履歴
NIST編集審査委員会による承認日:YYYY-MM-DD 最終版に追加されます。
このNIST技術シリーズ出版物の引用方法:Meltem Sönmez Turan、Kerry A. McKay、Donghoon Chang、Jinkeon Kang、John Kelsey (2024) Asconベースの制約付きデバイス向け軽量暗号化標準。(米国国立標準技術研究所、メリーランド州ゲイサーズバーグ)、NIST特別出版 (SP)
NIST SP 800-232 ipd。https://doi.org/10.6028/NIST.SP.800-232.ipd
要約
2023年、米国国立標準技術研究所(NIST)は、リソース制約のあるデバイス向けに効率的な暗号化ソリューションを提供するために、Dobraunig、Eichlseder、Mendel、Schläfferによって設計されたAsconアルゴリズムファミリーを選定したことを発表しました。この決定は、厳格で複数ラウンドにわたる軽量暗号化標準化プロセスの結果です。
この標準は、認証付き暗号化(AEAD)、ハッシュ、拡張可能出力関数(XOF)機能を提供するために設計された、Asconベースの新しい対称鍵暗号プリミティブファミリー、すなわちAscon-AEAD128、Ascon-Hash256、Ascon-XOF128、およびAscon-CXOF128を導入します。 Asconファミリーは、軽量な順列ベースのプリミティブを特徴とし、堅牢なセキュリティ、効率性、柔軟性を提供するため、IoT(モノのインターネット)デバイス、組み込みシステム、低消費電力センサーなど、リソースが限られた環境に最適です。このファミリーは、Advanced Encryption Standard(AES)が最適なパフォーマンスを発揮できない場合に、実用的な代替手段を提供するために開発されました。このドラフト規格は、Ascon-AEAD128、Ascon-Hash256、Ascon-XOF128、およびAscon-CXOF128の技術仕様を概説し、それらのセキュリティ特性を示します。
キーワード
Ascon、認証付き暗号化、制約付きデバイス、拡張可能出力関数(XOF)、ハッシュ関数、軽量暗号、順列ベース暗号、標準化。
コンピュータシステム技術に関する報告書
米国国立標準技術研究所(NIST)の情報技術研究所(ITL)は、米国の計測・標準化基盤における技術的リーダーシップを提供することで、米国の経済と公共の福祉の促進に貢献しています。ITLは、情報技術の開発と生産的利用を促進するため、試験、試験方法、参照データ、概念実証の実装、技術分析を開発しています。ITLの責務には、連邦政府の情報システムにおける国家安全保障関連情報以外の情報の費用対効果の高いセキュリティとプライバシーを確​​保するための、管理、運営、技術、物理に関する標準およびガイドラインの策定が含まれます。特別出版物800シリーズは、ITLによる情報システムセキュリティに関する研究、ガイドライン、アウトリーチ活動、および産業界、政府機関、学術機関との共同活動について報告しています。
特許請求の範囲の開示
本パブリックレビューには、必須特許請求の範囲(本情報技術研究所(ITL)草案におけるガイダンスまたは要件を遵守するために使用が求められる請求の範囲)に関する情報の開示が含まれます。このようなガイダンスおよび/または要件は、本ITL草案に直接記載することも、他の出版物を参照することもできます。また、本開示の範囲には、本ITL草案に関連する係属中の米国または外国の特許出願の存在、および関連する有効期間内の米国または外国の特許の存在(既知の場合)の開示も含まれます。
ITLは、特許権者またはその代理人として保証を行う権限を有する当事者に対し、書面または電子形式により、次のいずれかの保証を求めることができます。
1. 当該当事者が必須特許請求の範囲を保有しておらず、現在も保有する予定がない旨の、一般的な免責事項の形式による保証。または
2. 当該必須特許請求項に係るライセンスが、本ITL草案のガイダンスまたは要件を遵守する目的でライセンスの利用を希望する申請者に対し、次のいずれかの条件で提供されることを保証する。
(a) 不当な差別がないことが証明される合理的な条件の下で。
(b) 無償で、不当な差別がないことが証明される合理的な条件の下で。
かかる保証には、特許権者(または特許権者に代わって保証を行う権限を与えられた第三者)が、当該保証の対象となる特許の所有権を譲渡するすべての文書に、当該保証におけるコミットメントが譲受人を拘束することを確保するのに十分な条項を含めること、および譲受人が将来の譲渡の際にも同様に、各利益承継人を拘束することを目的として適切な条項を含めることを明記するものとする。
また、当該保証には、当該条項が関連する譲渡文書に含まれているかどうかにかかわらず、利益承継人を拘束することが意図されていることも明記するものとする。
このような発言は SP800-232-comments@list.nist.gov 宛にお送りください。
目次 Table of Contents
(略)
表一覧 List of Tables
表1. 頭字語 Acronyms
表2. 用語と定義 Terms and definitions
(略)
図一覧 List of Figures
(略)
謝辞
本規格の著者は、草稿作成過程において貴重なコメントと提案をいただいたAscon設計者であるChristoph Dobraunig氏、Maria Eichlseder氏、Florian Mendel氏、Martin Schläffer氏に感謝の意を表します。また、選定過程において貢献いただいたLawrence Bassham氏、Çağdaş Çalık氏、Deukjo Hong氏、Noah Waller氏をはじめとするNISTの同僚の方々にも感謝の意を表します。さらに、技術的および事務的なサポートを提供してくださったElaine Barker氏、Lily Chen氏、Andrew Regenscheid氏、Noah Ross氏、Sara Kerman氏にも感謝の意を表します。
1.はじめに
本標準草案は、関連データ付き認証暗号化(AEAD)、ハッシュ関数、および2つの拡張可能出力関数(XOF)を提供するAsconアルゴリズムファミリを規定します。Asconファミリは、制約のある環境で効率よく機能するように設計されています。本標準で規定されるアルゴリズムは以下のとおりです。
1. Ascon-AEAD128は、関連データ付きnonceベースの認証暗号化であり、単一鍵設定で128ビットのセキュリティ強度を提供します。
2. Ascon-Hash256は、入力メッセージの256ビットハッシュを生成する暗号ハッシュ関数であり、128ビットのセキュリティ強度を提供します。
3. Ascon-XOF128は、メッセージのハッシュの出力サイズをユーザーが選択できるXOFであり、サポートされるセキュリティ強度は最大128ビットです。
4. Ascon-CXOF128 はカスタマイズされた XOF であり、ユーザーがカスタマイズ文字列を指定し、メッセージハッシュの出力サイズを選択できます。最大 128 ビットのセキュリティ強度をサポートします。
Ascon ファミリーの開発。Ascon (バージョン v1) 1 は、CAESAR (Competition for Authenticated Encryption: Security, Applicability, and Robustness) に初めて提出されました。1
1 CAESAR は、国際的な暗号研究者グループが主催するコンペティションで、AES-GCM よりも優れた利点を持ち、広く採用されるのに適した認証暗号化方式のポートフォリオを特定します。コンペティションの最終ポートフォリオは 2019 年 2 月に発表されました。詳細については、https://competitions.cr.yp.to/caesar.html を参照してください。
Ascon ファミリーの開発。Ascon(バージョン v1)1 は、2014年にCAESAR(認証暗号化に関するコンペティション:セキュリティ、適用性、堅牢性)に初めて提出されました。提出されたバージョンには、128ビット鍵のプライマリ推奨であるAscon-128と、96ビット鍵のセカンダリ推奨であるAscon-96という2つのAEADアルゴリズムが含まれていました。
ラウンド2用の更新バージョンv1.1 2 とラウンド3用のv1.2 3 には、ラウンド定数の順序変更などの小さな調整が含まれ、セカンダリ推奨はAscon-128aに更新されました。2019年、Ascon-128とAscon-128aは、CAESARコンペティションの最終ポートフォリオにおいて、軽量認証暗号化ユースケースの第一候補として選定されました。
NIST軽量暗号標準化プロセス。 2015年、米国国立標準技術研究所(NIST)は、従来の暗号標準(AES-GCM 4, 5、SHA-2 6、SHA-3 7ハッシュ関数ファミリなど)がリソースを大量に消費する可能性がある制約のある環境に適した暗号標準を開発するため、軽量暗号標準化プロセスを開始しました。2023年2月、NISTは軽量暗号アプリケーション向けにAsconファミリ 8を標準化することを決定したことを発表しました。
(詳細については、NIST内部報告書(IR)8268 9、NIST IR 8369 10、およびNIST IR 8454 11を参照してください。)
Ascon提案v1.2との相違点。本標準草案とAscon提案8の技術的な相違点は以下の通りです。
2014年に提出されたAEADアルゴリズムには、128ビット鍵の一次推奨Ascon-128と、96ビット鍵の二次推奨Ascon-96の2つが含まれていました。
ラウンド2用の更新バージョンv1.1 2とラウンド3用のv1.2 3には、ラウンド定数の順序変更などの小さな調整が含まれ、二次推奨はAscon-128aに更新されました。2019年、Ascon-128とAscon-128aは、CAESARコンペティションの最終ポートフォリオにおける軽量認証暗号化ユースケースの第一候補として選定されました。
NIST軽量暗号標準化プロセス。 2015年、米国国立標準技術研究所(NIST)は、従来の暗号標準(AES-GCM 4, 5、SHA-2 6、SHA-3 7ハッシュ関数ファミリなど)がリソースを大量に消費する可能性がある制約のある環境に適した暗号標準を策定するための軽量暗号標準化プロセスを開始しました。2023年2月、NISTは軽量暗号アプリケーション向けにAsconファミリ 8を標準化することを決定したことを発表しました。(詳細については、NIST内部報告書(IR)8268 9、NIST IR 8369 10、およびNIST IR 8454 11を参照してください。)
Ascon提出v1.2との相違点。本標準草案とAscon提出8の技術的な相違点は以下の通りです。
1. 順列 Permutatuins。Ascon 提出では、6、8、12 ラウンドの 3 つの Ascon 順列が定義されていました。本標準では、将来の機能拡張の可能性を考慮して、最大 16 ラウンドのラウンド定数を提供することで、追加の Ascon 順列を規定しています。
2. AEAD の派生 AEAD variants。Ascon 提出パッケージでは、AEAD の派生として ASCON-128、ASCON-128a、ASCON-80pq が定義されていました。本標準では、ASCON-128a に基づく Ascon-AEAD128 アルゴリズムを規定しています。
3. ハッシュ関数の派生 Hash function variants。Ascon 提出では、ASCON-HASH と ASCON-HASHA が定義されていました。本標準では、ASCON-HASH に基づく Ascon-Hash256 を規定しています。
4. XOF の派生 XOF variants。Ascon 提出では、拡張可能な 2 つの出力関数、ASCON-XOF と ASCON-XOFA が定義されています。この規格は、ASCON-XOFをベースにしたAscon-XOF128と、新たにカスタマイズされたXOFであるAscon-CXOF128を規定しています。
5. 初期値 Initial values。アルゴリズムの初期値が更新され、潜在的な機能拡張に対応する新しいフォーマットがサポートされました。
6. エンディアン Endianness。リトルエンディアンマイクロコントローラでのパフォーマンスを向上させるため、エンディアンはビッグエンディアンからリトルエンディアンに変更されました。
7. 切り捨てとノンス-マスキング Truncation and nonce-masking。切り捨てとノンスマスキングを備えたAscon-AEAD128の実装オプションが追加されました。
Ascon の主な特徴。Ascon ファミリーの主な特徴は以下のとおりです。
複数の機能。同じ順列を用いて複数の機能を構築することで、AEAD、ハッシュ、XOF の各機能の実装においてロジックを共有でき、個別に開発された機能よりもコンパクトな実装が可能になります。
オンラインかつシングルパス。Ascon-AEAD128 はオンラインです。つまり、n 番目の暗号文ブロックは、鍵、ノンス、関連データ、および最初の n 個の平文ブロックによって決定されます。Ascon ファミリーのメンバーは、データに対してシングルパスのみを必要とします。
逆順列不要。Ascon ファミリーのメンバーはすべて、基礎となる順列を順方向にのみ使用するため、逆順列の実装は不要です。このアプローチにより、復号に逆演算を必要とする設計と比較して、実装コストが大幅に削減されます。
構成。第2節では、表記法、基本演算、補助関数など、準備事項を説明します。第3節では、最大16ラウンドまでのAscon順列を指定します。第4節では、認証付き暗号化方式Ascon-AEAD128を指定し、切り捨てとノンスマスキングの実装オプションをいくつか示し、検証要件を列挙し、セキュリティ特性を示します。第5節では、ハッシュ関数Ascon-Hash256、XOF関数Ascon-XOF128、およびカスタマイズされたAscon-CXOF128を指定し、それらのセキュリティ特性について説明します。付録Aでは、実装に関する追加の注意事項と変換関数を示します。付録Bでは、初期値の構築に関する追加情報を提供します。
2.まえがき Preliminaries
表 1 に、この規格で使用される頭字語(略語)を示します。
table:表1 Acronyms 略語
略語 意味
AD 関連データ Associated Data
AE 認証付き暗号化 Authenticated Encryption
AEAD 関連データ付き認証付き暗号化 Authenticated Encryption with Associated Data
AES 高度暗号化規格 Advanced Encryption Standard
CAESAR 認証暗号化の競争:セキュリティ、適用性、堅牢性 Competition for Authenticated Encryption: Security, Applicability, and Robustness
GCM ガロア/カウンターモード Galois/Counter Mode
NIST 米国国立標準技術研究所 National Institute of Standards and Technology
PRF 擬似乱数関数 Pseudo-Random Function
SHA 安全なハッシュアルゴリズム Secure Hash Algorithm
SPN 置換順列ネットワーク Substitution-Permutation Network
SP 特別出版 Special Publication
XOF 拡張可能な出力関数 eXtendable-Output Function
XOR 排他的論理和 eXclusive OR
表 2 では、この規格で使用される用語を定義します。
table:表2 Terms and definitions 用語と定義
用語 訳 定義
approved 承認された FIPS 出版物またはコンピュータセキュリティ SP 800 シリーズの NIST Special
Publication で指定または採用されているアルゴリズムまたは手法
(つまり、FIPS 承認または NIST 推奨)。
associated data 関連データ 認証されているが暗号化されていない入力データ。
bit ビット 0または1の2進数。この規格では、ビットはCourier Newフォントで示されます。
bit string ビット列 有限で順序付けられたビットのシーケンス。
capacity 容量 基礎となる順列の幅からレートを引いたもの。
digest 要約 ハッシュ値
eXtendable-Output Function (XOF) 拡張可能な出力関数 出力を任意の長さに拡張できるビット列の関数。
forgery 偽造 秘密鍵を知らない攻撃者によって生成された(暗号文、タグ)ペアであるが、
検証済みの復号手順によって有効であると認められる。
hash function ハッシュ関数 任意の長さの文字列を固定長の文字列にマッピングする数学関数。
message メッセージ/一報 ハッシュ関数への入力。
nonce ノンス 認証された暗号化アルゴリズムへの入力値。
特定のキーで実行される暗号化に1回だけ使用されます。
nonce-misuse ノンスの悪用 nonce の一意性の要件が意図せずまたは偶然に違反する設定。
nonce-respecting ノンスの尊重 nonce の一意性の要件を満たす設定。
rate レート 基礎となる順列の呼び出しごとに処理される入力ビット数、または生成される出力ビット数。
secret-key 秘密鍵(共通鍵) 秘密鍵(つまり対称鍵)暗号化アルゴリズムで使用される、公開されない暗号化鍵。
shall この規格への適合を主張するために満たす必要がある要件を表すために使用される用語。
tag タグ データの暗号チェックサム。計算と検証に秘密鍵が必要となるデータの
偶発的なエラーと意図的な変更の両方を明らかにするように設計されています。
truncation 切り捨て 入力ビット文字列を短縮し、指定された長さの部分文字列のみを保持するプロセス。
width 幅 基礎となる順列の状態サイズ。
表 3 に、この規格で使用される表記を示します。
表3. 表記
表記 定義
$ K 128-bit 秘密鍵(secret-key)
$ N 128-bit nonce
$ A 関連データ
$ A_i 関連データ$ Aの$ i番目のブロック
$ P 平文
$ P_i 平文$ Pの$ i番目のブロック
$ C 暗号文
$ C_i 暗号文 $ Cの$ i番目のブロック
$ Z カスタマイズ文
$ Z_i カスタマイズ文の$ i番目のブロック
$ T 128-bit 認証タグ
$ IV 64-bit 定数初期値
fail 認証された暗号文の検証に失敗したことを示すエラーメッセージ
$ M メッセージ
$ M_i メッセージ$ Mの$ i番目のブロック
$ H ハッシュ値 $ H
$ H_i ハッシュ値$ Hの$ i番目のブロック
$ S 基礎となる順列の320-bitの内部状態
$ S_0, ..., S_4 内部状態$ Sの5つの64-bitワード、 $ S = S_0 || S_1 || ... || S_4
$ S_{(i,j)} $ S_iの$ j番目のビット, $ 0 \le i \le 4, 0 \le j \le 63
$ S_i[j] ワード$ S_iの$ jバイト目 $ 0 \le i \le 4, 0 \le j \le 7
λ 切り捨てられたタグの長さ(ビット単位)
$ r アルゴリズムのレート
$ c_i Ascon順列のラウンド$ iの定数値
$ p_C,p_S,p_L ラウンド関数 $ p の定数-加算、置換、線形層
表4 この標準で使用される基本的な操作と機能をリストします。
機能 定義
$ \{ 0,1 \} ^* 空文字列を含むすべての有限ビット文字列の集合
$ \{0,1\}^s 長さsのすべてのビット列の集合
$ 0^s 𝑠 ≥ 0 のとき、$ 0^𝑠 は 𝑠 個の連続する 0 からなるビット文字列です。
𝑠 = 0 のとき、$ 0^𝑠 は空文字列です。
|X| ビット列 Xのビット長
$ X \| Y ビット列 𝑋 と 𝑌 の連結
$ x \times y 整数 𝑥 と 𝑦 の乗算
$ x + y 整数 𝑥 と 𝑦 の加算
$ x-y 整数 𝑥 と 𝑦 の減算
$ x/y 整数𝑥と非ゼロ整数𝑦の除算
$ x\mod y 𝑥を𝑦で割った整数の余り
$ \lceil x\rceil 実数 𝑥 に対して、𝑥 以上の最小の整数
$ \lfloor x\rfloor 実数 𝑥 に対して、 𝑥 以下の最大の整数
$ f \circ g関数$ 𝑓と$ 𝑔の合成。例えば、関数$ 𝑓(𝑥)と$ 𝑔(𝑥)の場合、$ 𝑓 \circ gは$ 𝑓(𝑔(𝑥))として評価されます。
$ \odot ビットごとのAND演算
$ \oplus ビットごとのXOR演算
$ X \ggg i 64ビットワード𝑋の𝑖ビットの右回転(循環シフト)。ここで、最下位ビットは右端のビットです。
$ X \ll i 𝑖ビット左シフト
$ X_{ [i:j] } ビット列 𝑋 の、インデックス 𝑖 からインデックス 𝑗 までの部分集合(両端を含む)。𝑖 > 𝑗 の場合、$ 𝑋_{ [𝑖:𝑗] } は空文字列です。𝑖 = 𝑗 の場合、$ X_{[i:j]} は1ビットです。
$ x==y 等価比較を行うブール演算子。つまり、𝑥が𝑦と等しい場合はtrue、そうでない場合はfalse。
0x 16進表記
int64($ x) 整数 𝑥 の 64 ビット表現。
2.1. 補助機能 Auxiliary Functions
解析関数。parse(𝑋,𝑟)関数は、入力ビット列𝑋を、$ X_0,X_1,…,\~𝑋_ℓ , where ℓ $ \leftarrow \lfloor |X|/r\rfloor (つまり、$ X \leftarrow X_0 \| X_1 \| ... \| \~X_ℓ )のブロックシーケンス内で解析します。ここで、 0 ≤ 𝑖 ≤ ℓ − 1 の$ X_iブロックはそれぞれビット長𝑟を持ち、最終ブロック$ \~X_ℓのビット長は0 から𝑟 − 1 の間です (アルゴリズム1を参照)。
アルゴリズム1 parse(X,r)
入力: ビット列 X, rate r
出力: ビット列 $ X_0, ..., X_{l-1}, \~X_l
$ l \leftarrow \lfloor|X|/r \rfloor
for $ i= 0 to $ l - 1 do
$ X_i \leftarrow X_{[{i\times r:(i+1)\times r-1}]}
end for
$ \~X_l \leftarrow X_{[l\times r:|X|-1]}
return $ X_0,...,X_{l-1},\~X_l